<?php
/**
 * [LICENCE]
 */

/**
 * Interface for Madoqua exceptions
 * @category   Madoqua
 * @package    Madoqua_Observer
 * @subpackage Subject_Interface
 * @author     Graham Anderson - graham@andtech.eu
 * @copyright  Copyright (c) 2008
 */
interface Madoqua_Observer_Subject_Interface_Exception
{
    /**
     * Register an observer
     * @param Madoqua_Observer_Interface_Exception $observer
     * @param string name
     */
    public function register(Madoqua_Observer_Interface_Exception  $observer, $name = null);
    
    /**
     * Remove observer from subject
     * @param Madoqua_Observer_Interface_Exception $observer
     * @param string name
     */
    public function delete(Madoqua_Observer_Interface_Exception $observer, $name = null);
    
    /**
     * Push out the exception for handling
     * @return void
     */
    function notify();
}